In order to improve the performance of computer systems which execute multiple tasks during processing, it is known to execute tasks in an eager fashion. That is, the computer system will use available computing resources to execute tasks prior to fully determining whether the execution of those tasks is required for processing. Such eager execution generally improves the performance of the system by reducing response time (i.e., the time it takes to process inputs to the system) because computing resources are more fully utilized. Of course, one result of eager execution is that certain tasks will be executed unnecessarily because it may be eventually determined that an eagerly executed task was not necessary for processing. However, overall performance is generally improved by the technique of eager execution.
A workflow system processes objects in accordance with a workflow specification. Such objects may be, for example, incoming calls to a call center, insurance claims arriving at a claim center, requests for information from an Internet web site, etc. The workflow specification describes how agents (humans) and/or components (software and hardware) interact to accomplish specific goals. Such components generally include components which are external to the workflow system.
Workflow systems of the type further described herein below execute tasks in order to process a received object. Therefore, such workflow systems would benefit from the eager execution of tasks. However, as described in further detail below, workflow systems which control external components in order to process objects introduce additional considerations into the determination of which tasks may be executed eagerly.
U.S. Pat. No. 5,809,212 entitled Conditional Transition Networks and Computational Processes for Use Interactive Computer-Based Systems, is directed to a conditional transition network for representing a domain of knowledge in a computer system. That system utilizes eager execution to evaluate conditions which indicate whether certain tasks will be executed in order to improve its response time to requests for stored information. Although the system utilizes eager execution for condition evaluation, it does not utilize eager execution of tasks. Further, the system is not a workflow system, and as such, the system does not control external components. Therefore, the system does not take into account the additional considerations resulting from the control of external components.